//
//  TwitterClient.h
//  trowel
//
//  Created by Jonathan Reams on 1/8/10.
//  Copyright 2010 __MyCompanyName__. All rights reserved.
//

#import <Cocoa/Cocoa.h>
#import <Growl-WithInstaller/Growl.h>
#import "Configuration.h"
#import "NewTweetDialog.h"
#import <SystemConfiguration/SCNetworkReachability.h>

@interface TwitterClient : NSObject <GrowlApplicationBridgeDelegate> 
{
	BOOL keepRunning;
	BOOL inCheck;
	NSNumber * interval;
	NSTimer * timer;
	NSStatusItem * statusItem;
	IBOutlet Configuration * config;
	SCNetworkReachabilityRef reachability;
	NSMutableDictionary * profileImageCache;
	NSMenu * statusMenu;
	IBOutlet NewTweetDialog * tweetDialog;
}

@property (readonly) NSMenu * statusMenu;
- (void) GetNewTweets: (NSString*) username except: (NSHashTable*) alreadySeen;
- (void) ProcessAccountsLoop;
- (void) stopStartNotifications: (id) sender;
- (void) actionQuit: (id) sender;
- (void) actionCheckNow:(id)sender;
- (void) changeInterval: (NSNumber*) newInterval;
- (NSDictionary *) postTweetsForData: (NSString *) jsonData forUsername: (NSString*) username except: (NSHashTable*) alreadySeen;
- (void) handleTweetClick: (NSDictionary *) tweetData forAction: (NSString*) action;
- (void) handleMenuAction: (id) sender;
- (NSNumber*) getIdleTime;
@end
